# 追加  a
'''
步骤:
1.文件打开
    格式: open(文件路径,读写模式,指定编码集) 这个函数的返回值是一个file对象 追加模式是a
2.追加数据
    格式:
        文件对象.write(要写入的内容)
        文件对象.writelines(字符串列表)
3.文件关闭
    格式: 文件对象.close()  文件关闭后将不能继续操作文件对象

思考1: 以a模式打开文件时,文件会被清空么?
以追加模式打开文件时, 文件不会被清空, 而是在文件末尾继续追加数据

思考2: 以a模式打开文件时,如果文件不存在会怎样?
如果文件不存在,则新建一个该名称的文件

思考3: 如果不书写encoding 则是以什么编码集编码??
gbk


'''

# 1. 文件打开
file = open('2.txt', 'a', encoding='utf8')

# 2. 追加数据
# AttributeError: '_io.TextIOWrapper' object has no attribute 'append'
# file.append('欲渡黄河冰塞川, 将登太行雪满山')
# 在文件读写类中,没有追加的方法,在追加模式下,直接使用写入方法写入数据即可

# 方式一:
file.write('闲来垂钓碧溪上,忽复乘舟梦日边')

# 方式二:
# TypeError: write() argument must be str, not int
# writelines 的列表中必须是全部元素均为字符串类型数据,否则报错
# file.writelines(['风萧萧兮易水寒,\n', '壮士一去兮不复还.\n', 1])
file.writelines(['风萧萧兮易水寒,\n', '壮士一去兮不复还.\n'])

# 3. 文件关闭
file.close()

# 思考:读取数据时,文件不存在会报错么? 会报错
# FileNotFoundError: [Errno 2] No such file or directory: '4.txt'
# file = open('4.txt', 'r')
# file.close()

